The present invention relates generally to computer networks, and relates more specifically to a method and apparatus for initiating an RSVP resource reservation process for a traffic flow originating from a network device that is not enabled to do so itself. More specifically, the present invention relates to generating an RSVP PATH message for such a traffic flow.
A computer network typically comprises a plurality of interconnected entities that transmit (xe2x80x9csourcexe2x80x9d) or receive (xe2x80x9csinkxe2x80x9d) data frames. A common type of computer network is a local area network (xe2x80x9cLANxe2x80x9d) that generally comprises a privately owned network within a single building or campus. LANs employ a data communication protocol (LAN standard) such as Ethernet, FDDI, or Token Ring, that defines the functions performed by the data link and physical layers of a communications architecture (i.e., a protocol stack), such as the Open Systems Interconnection (OSI) Reference Model. In many instances, multiple LANs may be interconnected by point-to-point links, microwave transceivers, satellite hookups, etc., to form a wide area network (xe2x80x9cWANxe2x80x9d), metropolitan area network (xe2x80x9cMANxe2x80x9d) or Intranet. These internetworks may be coupled through one or more gateways to the global, packet-switched internetwork known as the Internet.
Each network entity preferably includes network communication software, which may operate in accordance with Transport Control Protocol/Internet Protocol (TCP/IP) or some other suitable protocol. A protocol generally consists of a set of rules defining how entities interact with each other. In particular, TCP/IP defines a series of communication layers, including a transport layer and a network layer. At the transport layer, TCP/IP includes both the User Data Protocol (UDP), which is a connectionless transport protocol, and TCP which is a reliable, connection-oriented transport protocol. When a process at one network entity (source) wishes to communicate with another entity, it formulates one or more messages and passes them to the upper layer of the TCP/IP communication stack. These messages are passed down through each layer of the stack where they are encapsulated into packets and frames. Each layer also adds information in the form of a header to the messages. The frames are then transmitted over the network links as bits. At the destination entity, the bits are re-assembled and passed up the layers of the destination entity""s communication stack. At each layer, the corresponding message headers are also stripped off, thereby recovering the original message which is handed to the receiving process.
One or more intermediate network devices are often used to couple LANs together and allow the corresponding entities to exchange information. For example, a bridge may be used to provide a xe2x80x9cbridgingxe2x80x9d function between two or more LANs. Alternatively, a switch may be utilized to provide a xe2x80x9cswitchingxe2x80x9d function for transferring information, such as data frames or packets, among entities of a computer network. Typically, the switch is a computer having a plurality of ports (i.e., logical network interfaces (xe2x80x9cLIxe2x80x9d or xe2x80x9cinterfaces)) that couple the switch to several LANs and to other switches. The switching function includes receiving data frames at a source port and transferring them to at least one destination port for receipt by another entity. Switches may operate at various levels of the communication stack. For example, a switch may operate at Layer 2 which, in the OSI Reference Model, is called the data link layer, and includes the Logical Link Control (LLC) and Media Access Control (MAC) sub-layers.
Other intermediate devices, commonly known as routers, may operate at higher communication layers, such as Layer 3, which, in TCP/IP networks, corresponds to the Internet Protocol (IP) layer. IP data packets include a corresponding header which contains an IP source address and an IP destination address. Routers or Layer 3 switches may re-assemble or convert received data frames from one LAN standard (e.g., Ethernet) to another (e.g., Token Ring). Thus, Layer 3 devices are often used to interconnect dissimilar subnetworks. Some Layer 3 intermediate network devices may also examine the transport layer headers of received messages to identify the corresponding TCP or UDP port numbers being utilized by the corresponding network entities. Many applications are assigned specific, fixed TCP and/or UDP port numbers in accordance with Request For Comments (RFC) 1700. For example, TCP/UDP port number 80 corresponds to the Hypertext Transport Protocol (HTTP), while port number 21 corresponds to File Transfer Protocol (FTP) service.
The processes executing at network entities (e.g., Internet hosts) may generate hundreds or thousands of traffic flows that are transmitted across a network. Generally, a traffic flow is a set of messages (frames and/or packets) that typically correspond to a particular task, transaction, or operation (e.g., a print transaction), may be associated with an application, and may be identified by various network and transport parameters such as source and destination IP addresses, source and destination TCP/UDP port numbers, and transport protocol.
Computer networks typically include numerous services and resources for use in moving traffic flows throughout the network. For example, different network links, such as Fast Ethernet, Asynchronous Transfer Mode (ATM) channels, network tunnels, satellite links, etc., offer unique speed and bandwidth capabilities. Particular intermediate devices also include specific resources or services, such as number of priority queues, filter settings, availability of different queue selection strategies, congestion control algorithms, etc. Each port/logical network interface (LI) of a network device can provide a different service or resource. For ease of explanation, the term xe2x80x9cnetwork device,xe2x80x9d unless expressly stated otherwise, herein refers to the device in its entirety or one or more ports/LIs.
To maximize the transit performance of a traffic flow across a network, a desired quality of service (QoS) can be requested. For a given traffic flow, a desired QoS can be designated for each of various aspects of the traffic flow treatment across the network (i.e., how various services and resources of the network interact with the traffic flow as it travels across the network).
To obtain desired qualities of service (QoS), mechanisms can be used to reserve resources across a network along a path between a source and destination of a traffic flow. For example, the Resource Reservation Protocol (RSVP) provides a mechanism by which such resource reservations can be made. When both the source and destination are capable of utilizing RSVP (i.e., RSVP-enabled), the source generates and sends a PATH message along an intended path to the destination (i.e., intended receiver). The PATH message can specify the various characteristics of the traffic flow that is to be sent. The destination device can then establish the resource reservation in RSVP-enabled network devices along the intended path by sending back a RESV message. Additional information regarding RSVP can be found, for example, in Internetworking Technologies Handbook, Macmillan Technical Publishing (1998). The RSVP mechanism can be used with multicast or unicast traffic flows. The discussions herein are equally applicable to both with suitable modification.
Some sources of traffic flows are not designed, or are otherwise unable to start a reservation process with a PATH message as discussed above. For example, the source may be non-RSVP-enabled, not trusted, or merely designed or utilized so as not to bear the burden of handling the issue. RSVP signaling can require a large and complex protocol stack, with heavy demands on the source with respect to the memory footprint, O/S capabilities, and CPU load. By not including appropriate capabilities on network devices, the cost of such devices can be minimized. Providing large volumes of such less expensive devices, especially consumer-oriented end devices, can be attractive to device manufacturers. An example of such devices is an IP phone. However, when applications or other sources on such lower capability devices originate a traffic flow, the RSVP mechanism of providing QoS for the traffic flow cannot be utilized. Unfortunately, to provide services, such as carrying voice over IP, of desirable quality, RSVP capability can be critical. Yet upgrading such devices to support RSVP can prohibitively increase the cost of the devices.
Therefore, a mechanism for generating and communicating an RSVP PATH message for a traffic flow from a non-RSVP-enabled source is needed.
In particular, there is a need to provide such a system and method with minimal cost and complexity and maximum efficiency.
The foregoing objects and advantages, and other objects and advantages that will become apparent from the following description, are achieved by the present invention.
In one aspect of the present invention, a method of initiating a reservation process using Resource Reservation Protocol (RSVP), for a traffic flow in a communication network originating from a source that is not able to initiate an RSVP reservation process for the traffic flow. The method includes detecting a traffic flow directed from the source to a receiver of the traffic flow, and determining whether to initiate an RSVP reservation process for the traffic flow. The method also includes generating an RSVP PATH message associated with the traffic flow, as well as communicating the RSVP PATH message to the receiver of the traffic flow. The method can also include determining device and traffic parameters associated with the traffic flow, wherein generating the RSVP PATH message is based, at least in part, on at least one of the device and traffic parameters. Further, the method can include identifying and acquiring a predetermined policy and generating the RSVP PATH message based, at least in part, on the predetermined policy.
In another aspect of the present invention, a computer readable medium contains program instructions for initiating a reservation process using Resource Reservation Protocol (RSVP), for a traffic flow in a communication network originating from a source that is not able to initiate an RSVP reservation process for the traffic flow, wherein when the computer readable medium is read by a computer system having a processor and memory, the program instructions are configured to be executed by the processor. The computer readable medium includes program instructions for detecting a traffic flow directed from the source to a receiver of the traffic flow, and program instructions for determining whether to initiate an RSVP reservation process for the traffic flow. In addition, the computer readable medium includes program instructions for generating an RSVP PATH message associated with the traffic flow, and program instructions for communicating the RSVP PATH message to the receiver of the traffic flow.
In a yet another aspect of the present invention, a system for initiating a reservation process using Resource Reservation Protocol (RSVP), for a traffic flow in a communication network originating from a source that is not able to initiate an RSVP reservation process for the traffic flow, includes an RSVP proxy configured to be networked with a sender device and with a receiver device, where the sender device is configured to originate a traffic flow and send the traffic flow to a receiver device. The RSVP proxy includes a detector configured to detect the traffic flow directed from the source to the receiver device, when the detector is networked with the sender and receiver devices. In addition, the RSVP proxy includes an analyzer configured to determine attributes of the traffic flow when networked with the sender and receiver devices, as well as an RSVP PATH message generator.
Other features and aspects will become apparent from the following detailed description.